Você acabou de conseguir um novo emprego como analista de dados para o estado de Massachusetts, trabalhando no Departamento de Educação Elementar e Secundária (ou DEES, para abreviar!). O DEES supervisiona o sistema de educação pública do estado. Uma responsabilidade do DEES é garantir que todas as crianças tenham uma educação de qualidade – uma educação em que encontrem professores experientes, tenham acesso a uma abundância de recursos e, em última análise, formem-se tendo cumprido todos os requisitos do estado. Suas habilidades em SQL têm um papel a desempenhar nesses objetivos elevados!
As informações estão contidas no banco de dados dees.db
BAIXAR
Em Massachusetts, a educação pública é delegada aos distritos, um tipo de governo escolar frequentemente associado a uma cidade individual. Esses distritos, por sua vez, contêm muitas escolas individuais. Considere o diagrama de entidade-relacionamento abaixo, que codifica a relação entre distritos, escolas e outros dados que o DEES recolhe.
Dentro de
dese.db
,
você encontrará diversas tabelas que implementam os relacionamentos
descritos no diagrama acima. Clique nos menus suspensos abaixo para
saber mais sobre o esquema de cada tabela individual.
A tabela districts contém as
seguintes colunas:
id
: identifica o id do distritoname
: o nome do distritotype
: que denota o tipo de distrito. Em Massachusetts,
existem distritos escolares públicos (denominados “Public School
District”) e distritos autônomos (denotados “Charter District”). Não há
necessidade de entender a diferença entre os dois!city
: a cidade em que o distrito está localizadostate
: o estado em que o distrito está localizadozip
: o ZIP (cep) do distritoA tabela drivers contém as seguintes
colunas:
id
: identifica o id da escolaname
: o nome da escolatype
: o tipo de escola (“Public School” ou “Charter
School”)city
: a cidade em que a escola está localizadastate
: o estado em que a escola está localizadazip
: o ZIP (cep) da escolaA tabela graduation_rates contém as
seguintes colunas:
id
: identifica o id da taxa de graduaçãoschool_id
: o ID da escola associada à taxa de
graduaçãograduated
: percentual de alunos,0-100, que se formaram
no tempo certodropped
: percentual de alunos,0-100, que se formaram no
tempo certoexcluded
: percentual de alunos,0-100, que foram
expulsosA tabela scans contém as seguintes
colunas:
id
: identifica o id do gastodistrict_id
: id do distrito associado ao gastopupils
: número de alunos que frequentam as escolas do
distritoper_pupil_expenditure
: a quantia de dinheiro gasta por
aluno que frequenta escolas no distritoA tabela staff_evaluations contém as
seguintes colunas:
id
: identifica o id do relatório de avaliaçãodistrict_id
: id do distrito associado à avaliaçãoevaluated
: porcentagem de avaliações das equipes dos
distritosexemplary
: é a porcentagem de avaliações que marcaram
as equipes do distrito como “exemplares” exemplary
proficient
: é a porcentagem de avaliações que marcaram
as equipes do distrito como “proficientes” proficient
needs_improvement
: é a porcentagem de avaliações que
marcaram as equipes do distrito como “precisam de melhoria”
needs_improvement
unsatisfactory
: é a porcentagem de avaliações que
marcaram as equipes do distrito como “insatisfatória”
unsatisfactory
OBS: Alguns dos relacionamentos do banco de dados podem ser descritos por uma tabela única. Mas você deve trabalhar com o banco de dados que a equipe usa!
Para cada uma das perguntas a seguir, você deve escrever uma única query SQL que produza os resultados especificados por cada problema. Sua resposta deve assumir a forma de uma única consulta SQL.
Seu colega está preparando um mapa de todas as escolas
públicas de Massachusetts. Escreva uma query SQL para
encontrar os nomes e cidades de todas as escolas públicas de
Massachusetts. OBS: Lembre que nem todas as escolas na tabela
schools
são consideradas escolas públicas.
Sua equipe está trabalhando no arquivamento de dados antigos. Escreva uma query SQL para encontrar os nomes dos distritos que não estão mais operacionais. OBS:Distritos que não estão mais operacionais tem o “(non-op)” no final de seu nome.
O Legislativo de Massachusetts gostaria de saber quanto dinheiro, em média, os distritos gastaram por aluno no ano passado. Escreva uma consulta SQL para encontrar o gasto médio por aluno. Nomeie a coluna como “Despesas Médias por Aluno do Distrito”.
per_pupil_expenditure
na tabela de
expenditures
contém o valor médio, por aluno, que cada
distrito gastou no ano passado. Encontre a média deste conjunto de
médias, ponderando cada distrito de forma igual, independentemente do
seu tamanho.Algumas cidades têm mais escolas públicas do que outras. Escreva uma query SQL para encontrar as 10 cidades com mais escolas públicas. Sua consulta deve retornar os nomes das cidades e o número de escolas públicas dentro delas, ordenados do maior para o menor número de escolas públicas. Se duas cidades tiverem o mesmo número de escolas públicas, ordene-as em ordem alfabética.
O DEES gostaria que você determinasse em quais cidades poderiam ser necessárias escolas públicas adicionais. Escreva uma query para encontrar cidades com 3 ou menos escolas públicas (“Public Schools”). Sua consulta deve retornar os nomes das cidades e o número de escolas públicas dentro delas, ordenados do maior para o menor. Se duas cidades tiverem o mesmo número de escolas públicas, ordene-as de forma alfabética.
O DEES quer avaliar quais escolas alcançaram uma taxa de graduação de 100%. Escreva uma query SQL para encontrar os nomes das escolas (públicas ou charter!) que relataram uma taxa de graduação de 100%.
O DEESE está preparando um relatório sobre as escolas do distrito escolar de Cambridge. Escreva uma query SQL para encontrar os nomes das escolas (públicas ou charter!) no distrito escolar de Cambridge. Tenha em mente que Cambridge, a cidade, contém alguns distritos escolares, mas o DESE está interessado no distrito cujo nome é “Cambridge”.
Um pai deseja enviar seu filho para um distrito que tenha muitos alunos. Escreva uma query SQL para exibir os nomes de todos os distritos escolares e o número de alunos matriculados em cada um.
Outro pai deseja enviar seu filho para um distrito com poucos alunos. Escreva uma query SQL para encontrar o nome (ou nomes) do(s) distrito(s) escolar(es) com o menor número de alunos. Informe apenas o(s) nome(s).
Em Massachusetts, as despesas do distrito escolar são em parte determinadas pelos impostos locais sobre valores de propriedade (por exemplo, casa). Escreva uma query SQL para encontrar os 10 distritos escolares públicos com os maiores gastos por aluno. A sua consulta deverá devolver os nomes dos distritos e as despesas por aluno de cada um.
Existe uma relação entre despesas escolares e taxas de graduação? Escreva uma query SQL para exibir os nomes das escolas, suas despesas por aluno e sua taxa de graduação. Classifique as escolas da maior para a menor despesa por aluno. Se duas escolas tiverem a mesma despesa por aluno, ordene por nome da escola. (Assuma que a despesa por aluno de cada escola é a mesma que o seu distrito gasta como um todo).
Um pai pede conselhos sobre como encontrar os melhores distritos escolares públicos em Massachusetts. Escreva uma query SQL para encontrar distritos escolares públicos com gastos por aluno acima da média e uma porcentagem acima da média de professores classificados como “exemplares”. A sua consulta deverá devolver os nomes dos distritos, juntamente com as suas despesas por aluno e a percentagem de professores classificados como exemplares. Classifique os resultados primeiro pela percentagem de professores classificados como exemplares (de alto a baixo), depois pela despesa por aluno (de alto a baixo).